<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Primeros programas</title>
<!-- presentations based on Dave's model at http://www.w3.org/2006/02/woa/ -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="copyright" content="Copyright &#169; 2008 Luis Miguel Morillas" />
<meta name="font-size-adjustment" content="1" />
<link rel="stylesheet" href="notebook.css"
 type="text/css" media="screen, projection, print" />
<script src="slidy.js" type="text/javascript">
</script>
</head>
<body>
<!-- this defines the slide background -->

<div class="background">

  <div class="margin">
    <div class="header">
    <!-- sized and colored via CSS -->
    </div>
    <!-- hidden style graphics to ensure they are saved with other content -->
    <img class="hidden" src="square-bullet.gif" alt="" />
    <img class="hidden" src="fold.bmp" alt="" />
    <img class="hidden" src="fold.bmp" alt="" />
    <img class="hidden" src="fold-dim.bmp" alt="" />

    <img class="hidden" src="nofold-dim.bmp" alt="" />
    <img class="hidden" src="unfold-dim.bmp" alt="" />
    <img class="hidden" src="bullet-fold.gif" alt="" />
    <img class="hidden" src="bullet-unfold.gif" alt="" />
    <img class="hidden" src="bullet-fold-dim.gif" alt="" />
    <img class="hidden" src="bullet-nofold-dim.gif" alt="" />
    <img class="hidden" src="bullet-unfold-dim.gif" alt="" />
    <img class="sharpener" src="sharpener.gif" alt="sharpener" />
    <img class="pencil" src="pencil3.gif" alt="pencil" />

  </div>
</div>

<div class="slide cover">
<div class="header">
<h1>Primeros programas</h1>
<p><a href="mailto:morillas@gmail.com">Luis Miguel Morillas</a>
</p>
</div>
<img src="sky.jpg" class="cover"
alt="wispy clouds in a blue sky" />
<h2>Programación en lenguajes estructurados<br />
Ciclo DAI. IES Los Enlaces</h2>
</div>

<div class="slide">
<h1>Guión de la sesión</h1>
<ul>
<li>Proceso de desarrollo de software</li>
<li>Primer programa: conversor de temperatura</li>
<li>Elementos del programa</li>
<li>Sentencias de salida</li>
<li>Sentencias de asignación</li>
<li>Repeticiones fijas</li>
<li>Repaso</li>
<li>Ejercicios</li>
</ul>
</div>

<!--
<div class="slide">
<h1>The Ubiquitous Web</h1>
<ul>
<li>Ubiquitous Web</li>
<li>The Web is an increasingly dominant applications platform</li>
<li>Applications that dynamically adapt to the user, device and environment</li>
<li>Moving beyond today's client/server model</li>
<li>Extending device capabilities via the network</li>
<li>W3C UbiWeb Workshop, Tokyo March 2006</li>
</ul>
</div>
-->
<!--
<div class="slide">
<h1>Web Trends</h1>

<ul>
<li>The Web is pervasive and an increasingly dominant
applications platform</li>
<li>Increasing variety of devices being connected to networks,
not just desktops and cell phones</li>
<li>First in offices, and now in homes, cars, trains and planes</li>
<li>Web applications need to encompass a much wider range of devices
<ul>
<li>Cameras, copiers, scanners, printers, home appliances of all
kinds, environmental sensors and effectors, specialized engines
for speech, handwriting, etc.</li>
</ul>
</li>
<li>Increased costs for delivering services to wide variety of
devices and platforms</li> 
<li>Need for applications to dynamically adapt to the user, the
device capabilities and environmental conditions</li>
</ul>
</div>
-->
<div class="slide">
<h1>Proceso de desarrollo de software</h1>
<div class="extract">
<ul> 
  <li>Analizar el problema</li> 
  <li>Determinar las especificaciones (qué tiene que hacer exactamente, entradas y salidas)</li> 
  <li>Crear un diseño (estructura general del programa)</li> 
  <li>Implementar el diseño (con un lenguaje de programación)</li> 
  <li>Test/depuración del programa (comprobación de que no hay errores)</li> 
  <li>Mantenimiento del programa. Continuamos el desarrollo.</li> 
</ul>
</div>
</div>

<div class="slide">
<h1>Programa de ejemplo: conversor de temperatura</h1>
<p>Mira en esta página:<br/>
 <a href="http://http://code.google.com/p/ple-ieslosenlaces/source/browse/trunk/convertir_a_F.py">
http://code.google.com/p/ple-ieslosenlaces/source/browse/trunk/convertir_a_F.py</a></p>
</div>

<div class="slide">
<h1>Elementos que aparecen en los programas (1)</h1>
<div class="extract">
<ul> 
  <li>Los programas se componen de <span style="font-weight: bold;">sentencias</span> que se construyen con identificadores y expresiones.</li>
  <li>Los <span style="font-weight: bold;">identificadores</span> son nombres. Comienzan con un guión bajo o con una letra y pueden seguir de cualquier combinación de letra, dígito o guión bajo. Python distingue mayúsculas y minúsculas.</li>

  <li>Las <span style="font-weight: bold;">expresiones</span> son fragmentos de un programa que producen datos. Una expresión puede estar compuesta por:
<ul>
  <li><span style="font-weight: bold;">literales</span> (la representación de un valor, por ejemplo el número 3</li>
  <li><span style="font-weight: bold;">variables</span> (identificadores que almacenan valores)</li>

  <li><span style="font-weight: bold;">operadores</span> (combinan expresiones en expresiones más complejas)</li>
</ul>
  </li>
</ul></div>
</div>
<div class="slide">
<h1>Elementos que aparecen en los programas (2)</h1>
<div class="extract">
<ul> 
  <li><span style="font-weight: bold;">Los operadores para números son </span>+, -, *, /, %, **</li>
  <li>La sentencia <span style="font-weight: bold;">print</span> muestra los valores de una serie de expresiones en la pantalla</li>

  <li>La asignación de un valor a una variable se hace utilizando el signo igual <span style="font-weight: bold;">(=).</span> <br /></li>
  <li>Construimos bucles fijos con la sentencia <span style="font-weight: bold;">for</span>.<br /></li>
</ul>
</div>
</div>


<div class="slide">
<h1>Bucles fijos (1)</h1>
<div class="extract">
<h3>Forma general</h3>
<pre>
for &lt;var&gt; in &lt;secuencia&gt;:
    &lt;cuerpo del for&gt;
</pre>
<p>El cuerpo de <strong>for</strong> puede ser una secuencia de sentencias.</p>
<p>La variable que va detrás de la palabra clave <strong>for</strong> se llama índice del bucle.</p>
<p>En cada repetición va tomando un valor de la secuencia y las instrucciones del cuerpo se ejecutan una vez para ese valor.</p>
</div>
</div>

<div class="slide">
<h1>Bucles fijos (2)</h1>
<div class="extract">
<h3>Ejemplos</h3>
<pre>
>>> for i in [0,1,2,3]:
        print i

0
1
2
3
</pre>
<pre>
>>> for impar in [1, 3, 5, 7]:
        print impar * impar

1
9
25
49
</pre>
</div>
</div>

<div class="slide">
<h1>Range</h1>
<div class="extract">
<p><strong>range</strong> es una instrucción de Python que produce una lista de números</p>
<pre>
>>> range(5)

0
1
2
3
4
</pre>
<p>Podemos usarlo para hacer bucles contados:</p>
<pre>
for &lt;variable&gt; in range(&lt;expresión&gt;):
</pre>
<p>El valor de expresión determina cuántas veces se va a ejecutar el bucle.</p>
</div>
</div>



<div class="slide">
<h1>Ejercicios (1)</h1>
<div class="extract">
<ol> 
  <li>Un programa amigable tiene que mostrar una introducción que informe al programa de lo que hace. Modifica el programa convertir_a_F.py para que imprima una introducción.</li> 
  <li>Modifica el programa media_examenes.py para que muestre la media de tres exámenes</li> 
  <li>Modifica el programa convertir_a_F.py con una repetición para que se ejecute cinco veces antes de terminar.</li> 
  <li>Modifica el programa convertir_a_F.py para que muestre una tabla de valores Centígrados - Fahrenheit de 0º C a 100º C.</li> 
  <li>Escribe un programa convertir_a_C.py que convierta grados Fahrenheit a Centígrados.</li> 
</ol>
</div>
</div>


<div class="slide">
<h1>Ejercicios (2)</h1>
<div class="extract">
  <ol start="6"> 
<li>Escribe un programa km_a_millas.py que convierta kilómetros a millas. Un km son unas 0.62 millas.</li> 
<li>Escribe un programa que se llame <span style="font-weight: bold;">presentacion.py</span>. Mostrará en la pantalla tus datos personales: Nombre, apellido (primera línea), Aficiones (segunda línea), Grupos de música favoritos (tercera línea).<br /></li>

  <li>Escribe un programa <span style="font-weight: bold;">nombre_y_edad.py</span> que pida el nombre, el apellido y la edad de una persona y muestre un mensaje del tipo: &quot;<span style="font-weight: bold;">Te llamas María Pérez y tienes 21 años</span>&quot;.</li>
  </ol>
</div>
</div>


<div class="slide">
<h1>Ejercicios (3)</h1>
<div class="extract">
  <ol start="9"> 
 <li>Escribe un programa <span style="font-weight: bold;">perimetro_cuadrado.py</span>, que pide al usuario el valor del lado de un cuadrado y muestra su perímetro.</li>
  <li>Escribe un programa <span style="font-weight: bold;">area_cuadrado.py</span>, que que pide al usuario el valor del lado de un cuadrado y muestra su área.</li>
  <li>Escribe un programa <span style="font-weight: bold;">cuadrilatero.py</span>, que pide al usuario el valor de los lados de un cuadrilátero y muestra en pantalla su perímetro y su área.</li>
  <li>Escribe un programa <span style="font-weight: bold;">circulo.py</span>, que pide al usuario el lado de un círculo y muestra en pantalla la circunferencia y el área del círculo.<br /></li>

</ol>
</div>
</div>


<!--
<div class="slide">
<h1>Pencil test</h1>

<img width="60%" float="right"
src="pencil.gif" alt="pencil" />
</div>
-->
</body>
</html>


